import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;

class Pair {
	int prime;
	int count;
	Pair (int p) {prime = p; count = 0;}
	public String toString() { return new String("" + prime + " " + count); }
}

public class Problem29 {
	public static void main(String[] args) {
		int max = 100;

		Map<String, Set<Integer>> map = new HashMap<String, Set<Integer>>();

		for (int a = 2; a <= max; ++a) {
			List<Pair> l = primeFactoring(a);
			int gcd = gcdOfCounts(l);

			if (gcd == 1) {
				StringBuilder sb = new StringBuilder();
				for (Pair p : l) {
					sb.append("p" + p.prime + "c" + p.count);
				}
				map.put(sb.toString(), new HashSet<Integer>());
			}

			List<Pair> signature = new ArrayList<Pair>(l);
			for (Pair p : signature) {
				p.count /= gcd;
			}

			StringBuilder sb = new StringBuilder();
			for (Pair p : signature) {
				sb.append("p" + p.prime + "c" + p.count);
			}

			Set<Integer> set = map.get(sb.toString());
			for (int b = 2; b <= max; ++b) 
				set.add(b*gcd);
		}

		int count = 0;
		for (String sig : map.keySet()) {
			Set<Integer> s = map.get(sig);
			count += s.size();
		}

		System.out.println("" + count);
	}

	private static int gcdOfCounts(List<Pair> l) {
		int min = Integer.MAX_VALUE;
		for (Pair p : l) {
			if (p.count < min)
				min = p.count;
		}

		int i = min;
		for (; i >= 1; --i) {
			int j = 0;
			for (; j < l.size(); ++j) {
				if (l.get(j).count % i != 0)
					break;
			}

			if (j < l.size())
				continue;
			else
				break;	
		}

		return i;
	}

	private static List<Pair> primeFactoring(int x) {
		List<Pair> result = new ArrayList<Pair>();

		int i = 2;
		while (x > 1) {
			if (x%i == 0) {
				Pair p = new Pair(i);
				while (x%i == 0) {
					p.count++;
					x /= i;
				}
				result.add(p);
			}
			i++;
		}

		return result;
	}
}
